#ifndef CODEDUMPVISITOR_H
#define CODEDUMPVISITOR_H
#include <iostream>
#include "Visitor.h"
class BinExpr;
class CodeDumpVisitor : public Visitor
{
protected:
    std::ostream& m_os;
    int m_indent;
    void Indent();
	void DumpChildrenExpr(BinExpr* expr);
public:
	CodeDumpVisitor(std::ostream& os);
	void Visit(AddExpr* expr);
	void Visit(SubExpr* expr);
	void Visit(MulExpr* expr);
	void Visit(DivExpr* expr);
	void Visit(ConstExpr* expr);
};

#endif // CODEDUMPVISITOR_H
